(function () {    
    class Animal {
        name: string
        constructor(name: string) {
            this.name = name
        }
        bark() {
            console.log('哼哼哼！')            
        }
    }

    class Dog extends Animal {
        age: number
        constructor(name: string, age: number) {
            super(name) // 想要新增属性必须现用 super 把父类的参数重新调用一遍
            this.age = age
        }
        bark() {
            // super 相当于可以直接调用父类的属性 （通常用于子类新增属性）
            super.bark()
        }
    }

    const dog = new Dog('wangcai', 1)
    console.log(dog.bark())    
})()